package com.ai.service.made;

import com.ai.entity.made.AlgorithmServerRelation;
import com.ai.model.param.DeployAlgorithmParam;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author jiaok
 * @since 2024-09-09
 */
public interface IAlgorithmServerRelationService extends IService<AlgorithmServerRelation> {

    /**
     * 保存算法部署服务器关系
     * @param deployAlgorithmParam 部署基本参数
     * @param algorithmFilePath 启停文件存储路径
     */
    void saveRelation(DeployAlgorithmParam deployAlgorithmParam, String algorithmFilePath);

    /**
     * 获取部署关系列表
     * @param functionId
     * @return
     */
    List<AlgorithmServerRelation> getDeployRelationList(String functionId);

    /**
     * 部署算法时，先检测当前算法是否已经在目标服务器上运行
     * @param deployAlgorithmParam
     */
    void isDeployedAndRunning(DeployAlgorithmParam deployAlgorithmParam);

    /**
     * 目标服务器上是否存在正在运行的算法
     * @param functionId
     * @return
     */
    boolean existAlgorithmRunning(String functionId);

    /**
     * 将指定服务器上相同功能除指定算法版本以外的所有部署版本设置为关闭状态
     * @param type 关闭状态 0
     * @param id 服务器id
     * @param functionId 功能id
     * @param algorithmId 算法id
     */
    void setAlgorithmStopStatus(String type, Integer id, Integer functionId,Integer algorithmId);
}
